package com.meatball.iot.driver.doormagnet.enums

import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonValue
import com.meatball.iot.driver.doormagnet.enums.EventType.UNKNOWN_EVENT

/**
 * TODO 门磁事件枚举
 *
 * @author 张翔宇
 * @since 2024年6月18日
 */
enum class Event(val value: Int) {
    HEARTBEAT_PUSH(1), // 心跳/开机推送
    DOOR_MAGNET_TRIGGER_ALARM(2), // 门磁触发报警
    DOOR_MAGNET_TRIGGER_RECOVERY(3), // 门磁触发恢复
    LOW_VOLTAGE(6), // 低电压
    UNKNOWN_EVENT(-1);

    companion object {
        @JvmStatic
        @JsonCreator
        fun fromInt(value: Int): Event {
            return entries.firstOrNull { it.value == value } ?: UNKNOWN_EVENT
        }
    }

    @JsonValue
    fun toValue(): Int {
        return value
    }
}